レシピを使用して値を設定する
レシピを使用して、コントローラー上の特定の変数セット(レシピ定義)の値を同時に変更または読み取ります。
場所や形式などのレシピの基本設定を定義します。 レシピマネージャー 物体。任意の数を挿入します レシピの定義 このオブジェクトの下にあります。
レシピをファイルに保存することも、ファイルからコントローラーに直接書き込むこともできます。
レシピは次の方法で呼び出すことができます。 CODESYS 開発インターフェイス、視覚化要素、またはアプリケーション プログラム。
リモートデバイスでレシピを使用する
データ ソース変数が関係しており、データ ソース交換が構成されている場合、レシピの変数値は別のコントローラーとの間で自動的に転送されます。読み取りと書き込みは同期して行われます。これは、レシピ定義で構成されたすべての変数が同時に更新されることを意味します。
読み取りまたは書き込み後、通話を使用できます g_RecipeManager.LastError
転送が成功したかどうかを確認するには (g_RecipeManager.LastError = 0
)。
でのレシピコマンドの呼び出し CODESYS ユーザーインターフェース
のプログラミングインターフェース CODESYS レシピを作成するためのコマンドと、オンラインモードでの読み取り/書き込みのためのコマンドを提供します。
プログラムまたはビジュアライゼーションでレシピ コマンドを呼び出す
実行時に、アプリケーション プログラムでレシピ定義とレシピ コマンドを呼び出すことができます。これを行うには、 RecipeManCommands
の機能ブロック RecipeManagement
図書館。
詳細については、以下を参照してください。 RecipeManCommands (FB)
視覚化では、レシピ コマンドの呼び出しは、 設定入力(コマンド実行) 視覚化要素の場合。これにより、視覚化ユーザーはレシピ コマンドの実行を制御できます。
ヒント
初期化プロセス中に、レシピ管理はレシピ定義で指定された変数の値を読み取ります。このプロセスは、アプリケーションの初期化フェーズの最後に実行されます。この時点で、アプリケーション変数のすべての初期値が設定されます。これは、レシピファイルから欠落している値を正しく初期化するために行われます。
浮動小数点数のための特別な機能
型の変数の場合 REAL
また LREAL
、値が正確に変換可能かどうかが区別されます。
値を正確に変換できた場合は、数値のみがレシピ ファイルに保存されます。
正確な変換が不可能な場合は、レシピ ファイル内の数値の隣に 16 進数でエンコードされた文字列が書き込まれます。これにより、変換不可能な浮動小数点数も同じ値を返すという効果が得られます。
この機能は次のコマンドで無効にできます。 RECIPE_GENERATE_SIMPLE_STRINGREAL
コンパイラの定義。
ヒント
親アプリケーションのオブジェクトプロパティで 建てる、これを入力できます RECIPE_GENERATE_SIMPLE_STRINGREAL
コンパイラは コンパイラの定義 オプション。その結果、16 進数でエンコードされた文字列は保存されません。
詳細については、以下を参照してください。 ダイアログ: プロパティ: ビルド
レシピの作成
デバイスツリーでオブジェクトを選択します 応用。
クリック プロジェクト → オブジェクトの追加 → レシピマネージャー。
Recipe Manager がデバイス ツリーに追加されます。
デバイス ツリーで、 レシピマネージャー 物体。
クリック プロジェクト → オブジェクトの追加 → レシピ定義。
の レシピ定義 レシピマネージャーの下に追加されます。
オブジェクトをダブルクリックして、レシピ定義のエディターを開きます。
メモ帳で、下の空のスペースをダブルクリックします 変数 アウト。レシピを定義する変数の名前を入力します。入力ヘルプはこれの準備ができています:ボタン
。
コマンドを選択します
新しいレシピの名前を入力します。レシピ名の列がエディターに表示されます。
このフィールドに、このレシピの変数の値を入力します。
必要に応じて、変数を追加します。
レシピのタグ値を選択し、コマンドを実行します
アウト。場所とファイル名を選択します。レシピは、レシピマネージャーで定義された形式で保存されます。
ファイルからレシピをロードする
要件:アプリケーションにはレシピ管理があります。レシピ定義にはレシピがあります myRec 変数値を使用します。レシピファイル myRec.txt
このレシピのエントリを含む、はファイルシステムにあります。
レシピファイルの例:
PLC_PRG.bVar:=0 PLC_PRG.iVar:=2 PLC_PRG.dwVar:=35232 PLC_PRG.stVar:='first' PLC_PRG.wstVar:='123443245'
オブジェクトをダブルクリックして開きます レシピの定義 デバイスツリーで、個々のレシピを定義するためのテーブルエディタ。
列が表示されます
myRec
このレシピの現在の値を使用します。ファイルを編集する
myRec.txt
外部テキストエディタで、変数値をレシピ定義に入力できる他の値に置き換えます CODESYS ロードしたい。ファイルを保存します。レシピ定義で、from列をクリックします myRec コンテキストメニューでコマンドを選択します レシピを読み込む。
再度ログインするときにオンライン変更を実行する必要がある可能性があることを通知するダイアログ プロンプトが表示されます。レシピをロードしてレシピ変数の現在値を変更する場合は、オンライン変更が必要です。
で通知ダイアログを閉じます はい (継続する)。ファイルを選択してください
myRec.txt
ファイルエクスプローラからロードします。レシピ定義のレシピ値は、ファイルから読み取られた値に従って更新されます。
ヒント
個々のレシピ変数のみを新しい値で上書きする場合は、レシピ ファイルにロードする前に他の変数の値を削除します。値定義のないエントリは読み取られないため、更新してもこれらの変数はコントローラー上およびプロジェクト内で変更されないままになります。
データ型の値の場合 REAL
/LREAL
、場合によっては 16 進値もレシピ ファイルに書き込まれます。これは、逆変換するときにまったく同じ値が復元されるようにするために必要です。この場合、10 進値を変更し、16 進値を削除します。
コントローラのレシピ管理、メモリ使用量
オプションがある場合 PLCでのレシピ管理 非アクティブ化されると、レシピマネージャーとレシピ定義はコントローラー上のメモリを使用しません。
このオプションを有効にした場合、コントローラーのメモリーを占有するコードが、レシピマネージャーとすべてのレシピ定義に対して生成されます。メモリ使用量のサイズは、主にレシピとそのタグの数、およびタグのデータ型によって異なります。レシピ定義のフィールドに値が含まれているかどうかも重要です。レシピのメモリ消費量は計算できません。これは、必要に応じて経験的に決定する必要があります。以下の表は、ガイドとしてのみ使用してください。
コードサイズ(バイト) | データサイズ(バイト) | 合計(バイト) | |
---|---|---|---|
100個のINT変数を含むレシピ定義 | 194406 | 79400 | 267352 |
200個のINT変数を含むレシピ定義 | 238318 | 121284 | 459344 |
300個のINT変数を含むレシピ定義 | 282230 | 163084 | 543856 |
100個のBOOL変数を含むレシピ定義 | 192742 | 69884 | 343168 |
200個のBOOL変数を含むレシピ定義 | 235446 | 101568 | 436872 |
300個のBOOL変数を使用したレシピ定義 | 278146 | 133284 | 510072 |
100個の文字列変数を含むレシピ定義 | 203278 | 870084 | 1154000 |
200個の文字列変数を使用したレシピ定義 | 255570 | 1709784 | 2973296 |
300個の文字列変数を使用したレシピ定義 | 307886 | 2549484 | 2964112 |
コントローラからレシピ値をロードする
その間にプロジェクトでこれらの定義が展開されている場合でも、コントロールデバイスにあるレシピ値をプロジェクトのレシピ定義に転送できます。
前提条件:オプション PLCでのレシピ管理 レシピマネージャでアクティブになります。
プロジェクトでレシピ定義を作成します
RecDef1
、変数ですPLC_PRG.ivar
とPLC_PRG.bvar
が含まれています。レシピを追加する R1 a:の値PLC_PRG.ivar
:33
、の値PLC_PRG.bvar
:TRUE
。コントローラにログインし、アプリケーションをロードします。
レシピファイル
R1.RecDef1.txtrecipe
コントローラの標準ディレクトリ($ PlcLogic $)に保存されます。再度ログアウトして、プロジェクトのレシピ定義に別のタグを追加します。
PLC_PRG.dwvar
。レシピ定義ファイルを編集する
R1.RecDef1.txtrecipe
デバイス上で、の値を変更しますPLC_PRG.ivar
から33
の上34
。また、デバイスに別のレシピを追加します R2 追加した。これを行うには、ファイルをコピーします
R1.RecDef1.txtrecipe
名前を次のように変更しますR2.RecDef1.txtrecipe
。次に、このファイルを編集して、レシピの値を変更します。PLC_PRG.ivar
:1
、PLC_PRG.bvar
:FALSE
。デバイスに2つのレシピがあります R1 と R2 準備。プロジェクトには R1 また、以外の値も含まれています R1 デバイス上で..
オンラインで変更してコントローラーに再度ログインします。
コマンドを選択します デバイスからレシピをロードする コンテキストメニューから。
コマンドを実行すると、次にログインしたときにオンライン変更がトリガーされる可能性があり、現在のレシピ定義のレシピがランタイムシステムのレシピで上書きされることを通知するメッセージボックスが表示されます。
続行することを確認します。
メッセージボックスは、デバイスによってロードされたレシピが
PLC_PRG.dwvar
コントローラから値を配信できません。続行することを確認します。
の値
PLC_PRG.ivar
レシピで R1 プロジェクトのレシピ定義で次のように変更されます34
。レシピ R2 値で1
とFALSE
レシピ定義にも表示されるようになりました。PLC_PRG.dwvar
レシピ定義に残ります。